了解了 RESTful API 的概念之後,接著我們也可以試著去設計出一套 RESTful API 出來,並且了解要如何透過 Spring Boot 程式,去實作這套 RESTful API。
舉例來說,我們可以先設計出一個 Student class,並且在裡面新增 id 和 name 兩個變數,用來表示這個學生的 id 和名字,程式如下:
public class Student {
Integer id;
String name;
}
接著,我們可以為 Student 這個資源,去設計出一連串的 RESTful API:
所以針對 Student 這個「資源」,通常我們會設計四個最基本的 RESTful API 給他,也就是 CRUD(Create 新增、Read 查詢、Update 修改、Delete 刪除),具體設計方式如下圖所示:
所以透過這四個 RESTful API,就可以完成 Student 的「新增、查詢、修改、刪除」的四個基本操作了!
補充:「Create 新增、Read 查詢、Update 修改、Delete 刪除」這四個操作,又可以簡稱為 CRUD,幾乎每一種資源(ex: 商品、訂單、會員...等),都會需要這四個操作,因此 CRUD 也可以說是大家剛入門 Spring Boot 時,最常撰寫的程式。
當我們設計好 Student 資源的四個基本 RESTful API 之後,因此前端到時候想要去新增一筆 Student 數據時,前端就要使用 POST,去請求 /students
這個 url 路徑,這樣子才能夠創建一筆新的 Student 數據到資料庫中。
而在 Spring Boot 中,有兩種方式可以「限制」前端只能用某個 Http method 來請求 url 路徑,分別是:
@RequestMapping(value = "/students", method = RequestMethod.POST)
以及
@PostMapping("/students")
上面這兩種寫法,都可以限制前端只能使用 POST,去請求 /students
的 url 路徑,他們的差別就只是一行寫起來比較長、一行寫起來比較短而已。
在之前的文章中,我們都是使用上面的 @RequestMapping
的寫法來設計 url 路徑,而他的缺點,就是寫起來比較冗長,不利於後續維護。
因此一般在實作上,通常會改成使用下方的 @PostMapping
的寫法,直接透過 @PostMapping
這個註解,去「限制」前端只能使用 POST 來請求,這樣子的寫法會更簡潔、更一目瞭然,所以一般在設計 RESTful API 時,通常就是會採用下方的 @PostMapping
來實作!
在 Spring Boot 中,就提供了以下四個註解給我們使用:
@GetMapping
:限制前端只能使用 GET 來請求該 url 路徑@PostMapping
:限制前端只能使用 POST 來請求該 url 路徑@PutMapping
:限制前端只能使用 PUT 來請求該 url 路徑@DeleteMapping
:限制前端只能使用 DELETE 來請求該 url 路徑不過這些註解大家不需要死背,因為大家如果觀察一下的話,可以發現「這些註解都是以 Http method 當作開頭」來設計,像是 @GetMapping
就是 Get + Mapping,而 @PostMapping
則是 Post + Mapping。
所以當大家以後看到這些註解時,只要直接觀察註解的名稱(XXX + Mapping),就可以知道他想要限制的是哪一種請求方法了!
補充:如果沒有在 @ReqeustMapping 後面的小括號中,特別添加 method = RequestMethod.POST 的設定的話,那就是所有的 Http method 都接受,沒有特別限制
這邊的 @RequestMapping,有拼寫筆誤
感謝提醒!已修正
也謝謝老師每日更新文章,受益良多!